//
//  ListAdjacence.h
//  Taquin
//
//  Created by Benjamin Bouachour on 12/08/11.
//  Copyright 2011 Epitech. All rights reserved.
//

#ifndef _LIST_ADJACENCE_H
#define _LIST_ADJACENCE_H

#include "IGraphe.h"
#include "Noeud.h"


#include <Vector>
#include <map>
#include <iostream>

using namespace std;

typedef map<Noeud *, vector<Noeud*> > l_adjacence;
//typedef map< pair<int, int>, int> l_adjacence;

class ListAdjacence
{
    l_adjacence _graphe;
public:
    ListAdjacence();
    ListAdjacence(const ListAdjacence &copie);
    ~ListAdjacence();
    
    ListAdjacence & operator=(const ListAdjacence& o);
    
     const vector<Noeud *> &getVoisins(Noeud *node) ;
      
    const void setVoisins( Noeud *key,  vector<Noeud*> &value);
    
    const void addNoeud( Noeud *noeud,  vector<Noeud *> &value);

};

#endif